package com.hiultra.archive.service;

import com.hiultra.common.core.domain.TreeSelect;
import com.hiultra.common.core.domain.entity.ArcCabinet;

import java.util.List;

/**
 * 智能柜Service接口
 * 
 * @author 李爽
 * @date 2023-08-22
 */
public interface IArcCabinetService 
{
    /**
     * 查询智能柜
     * 
     * @param cabinetId 智能柜主键
     * @return 智能柜
     */
    public ArcCabinet selectArcCabinetByCabinetId(Long cabinetId);

    /**
     * 查询智能柜列表
     * 
     * @param arcCabinet 智能柜
     * @return 智能柜集合
     */
    public List<ArcCabinet> selectArcCabinetList(ArcCabinet arcCabinet);

    /**
     * 新增智能柜
     * 
     * @param arcCabinet 智能柜
     * @return 结果
     */
    public int insertArcCabinet(ArcCabinet arcCabinet);

    /**
     * 修改智能柜
     * 
     * @param arcCabinet 智能柜
     * @return 结果
     */
    public int updateArcCabinet(ArcCabinet arcCabinet);

    /**
     * 批量删除智能柜
     * 
     * @param cabinetIds 需要删除的智能柜主键集合
     * @return 结果
     */
    public int deleteArcCabinetByCabinetIds(Long[] cabinetIds);

    /**
     * 删除智能柜信息
     * 
     * @param cabinetId 智能柜主键
     * @return 结果
     */
    public int deleteArcCabinetByCabinetId(Long cabinetId);
    /**
     * 设置智能柜规格
     *
     * @param arcCabinet 智能柜
     * @return 结果
     */
    public int updateGridAndLayer(ArcCabinet arcCabinet);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param  arcCabinets 智能柜列表
     * @return 下拉树结构列表
     */
    public List<TreeSelect> buildCabinetTreeSelect(List<ArcCabinet> arcCabinets);

    /**
     * 查询智能柜一级
     *
     * @return 智能柜列表
     */
    public List<ArcCabinet> selectArcCabinetAll();
}
